Component org.nuxeo.ecm.core.retention.contrib
In bundle org.nuxeo.ecm.core
Resolution Order
95
The resolution order represents the order in which this component has been resolved by the Nuxeo Runtime
framework.
You can influence this order by adding "require" tags in your component declaration, to make sure it is resolved after another component.
Contributions
- org.nuxeo.ecm.core.retention.contrib--policies
- org.nuxeo.ecm.core.retention.contrib--listener
- org.nuxeo.ecm.core.retention.contrib--actions
- org.nuxeo.ecm.core.retention.contrib--streamProcessor
XML Source
<?xml version="1.0"?>
<component name="org.nuxeo.ecm.core.retention.contrib" version="1.0.0">
<extension target="org.nuxeo.ecm.core.security.SecurityService" point="policies">
<documentation>
The retention and hold security policy prevents deletion of a document
when it is under retention or has a legal hold.
</documentation>
<policy name="retentionAndHold" class="org.nuxeo.ecm.core.security.RetentionAndHoldSecurityPolicy"
order="1" />
</extension>
<extension target="org.nuxeo.ecm.core.event.EventServiceComponent" point="listener">
<listener name="findRetentionExpired" async="true"
class="org.nuxeo.ecm.core.security.RetentionExpiredFinderListener">
<event>findRetentionExpired</event>
</listener>
</extension>
<extension target="org.nuxeo.ecm.core.bulk" point="actions">
<!-- NOT httpEnabled -->
<action name="retentionExpired" inputStream="retention/retentionExpired" bucketSize="100" batchSize="25" />
</extension>
<extension target="org.nuxeo.runtime.stream.service" point="streamProcessor">
<streamProcessor name="retentionExpired"
class="org.nuxeo.ecm.core.security.RetentionExpiredAction" defaultConcurrency="1" defaultPartitions="1">
<!-- continue on failure, because failure to expire retention doesn't give us an inconsistent state -->
<policy name="default" maxRetries="20" delay="1s" maxDelay="60s" continueOnFailure="true" />
</streamProcessor>
</extension>
</component>